Folder Class Reference

Inheritance diagram for Folder:
Resource

List of all members.

Public Member Functions

 __construct ($fileID=0)
 setFolderState ($folderState)
 setLayerType ($layerType)
 setStudentWrite ($studentWrite)
 setFolderType ($folderType)
 getFolderState ()
 setParentFolder ($folder)
 getFiles ()
 setFiles ($files)
 getSubFolders ()
 loadSubFolder ()
 isActiveFolder ()
 getFolderCount ($recursive=true)
 printSubFolder ($layer= '')
 drawFolder ($layer= '', $showCount=true)
 hasFilesInSubFolders ()
 showFiles ($statisticView=false)
 archiverAccept (ResourceVisitor $visitor, $parentPath="/")

Private Member Functions

 isLastFolder ($fileID=null)
 getUserIcons ()
 getFolderHTMLOption ($option)

Private Attributes

 $parentFolder = null
 Klassen-Attribute.
 $folders = array()
 $files
 $layerType
 $folderType
 $folderState
 $studentWrite
 $fileCounter = 0
 $linkCounter = 0

Static Private Attributes

static $iconTypes = array()

Detailed Description

Definition at line 34 of file class.folder.inc.php.


Constructor & Destructor Documentation

Folder::__construct ( fileID = 0  ) 

Definition at line 49 of file class.folder.inc.php.

References Resource::$fileID.

00049                                                    {
00050                 $this->fileID = $fileID;
00051 
00052                 global $VISIBLE_TXT, $VISIBLE_ICONS;
00053 
00054                 $VISIBLE_TXT = array();
00055                 $VISIBLE_ICONS = array();
00056                 $imgFolder = PATH_TO_ROOT.'ressourcen/icons/';
00057                 $VISIBLE_TXT[1] = " für alle sichtbar";
00058         $VISIBLE_TXT[2] = " nur für Dozenten & Tutoren sichtbar";
00059         $VISIBLE_TXT[3] = " nur für Dozenten sichtbar";
00060         //Icons für Sichtbarkeit von Ordnern/Links/Dateien
00061         $VISIBLE_ICONS[1] = "<img src='".$imgFolder."edittypes/view_Student.gif' alt='visibilityAll Symbol' />";
00062         $VISIBLE_ICONS[2] = "<img src='".$imgFolder."edittypes/view_noStudent.gif' alt='visibilityNoStudents Symbol' />";
00063         $VISIBLE_ICONS[3] = "<img src='".$imgFolder."edittypes/view_Dozent.gif' alt='visibilityDocentsOnly Symbol' />";
00064 
00065                  // Foldersymbole und Struktursymbole fuer Verzeichnisbaum (CSS Klassen)
00066         if ( empty(self::$iconTypes)) self::$iconTypes = array(0 => 'ricon_rootFolder', 1 => 'ricon_folderOpen', 2 => 'ricon_folderClosed', 3 => 'ricon_join', 4 => 'ricon_joinBottom', 5 => 'ricon_line', 6 => 'ricon_minus', 7 => 'ricon_minusBottom', 8 => 'ricon_plus', 9 => 'ricon_plusBottom', 10 => 'ricon_empty', 11 => 'ricon_foyerFolder', 12 => 'ricon_mostpopular', 13 => 'ricon_mostrecent');
00067 
00068         }


Member Function Documentation

Folder::archiverAccept ( ResourceVisitor visitor,
parentPath = "/" 
)

Archiver accept method for ArchiveVisitor

Parameters:
ArchiveVisitor $visitor Archive visitor
String $parentPath Parent path
Returns:
Sting Parent path

Definition at line 533 of file class.folder.inc.php.

References ResourceVisitor::visit().

00533                                                                                 {
00534         assert($visitor instanceof ResourceVisitor);
00535         
00536         return $visitor->visit($this, $parentPath);
00537     }

Folder::drawFolder ( layer = '',
showCount = true 
)

Definition at line 226 of file class.folder.inc.php.

References Resource::$fileID, $folderType, $layerType, and isActiveFolder().

Referenced by printSubFolder().

00226                                                                {
00227         $fileID = $this->fileID;
00228         $folderType = $this->folderType;
00229         $layerType = $this->layerType;
00230         $folderLink = Data::toHTML($this->link, false);
00231                 // Zaehlt die enthaltenen Elemente
00232 
00233         global $resDB;
00234         if ( $showCount ) {
00235                 if ($this->folderState) {
00236                     $subCount = $resDB->countSubElements( $fileID, false );
00237                 } else {
00238                     $subCount = $resDB->countSubElements( $fileID, true );
00239                 }
00240                 $folderLink .= " (".$subCount.")";
00241         }
00242             $folderName = Data::toHTML($this->name, false);
00243         // Es wird ein geoeffneter Ordner angezeigt, wenn kein foyer, root oder mostratet Ordner
00244         if ($this->isActiveFolder() && $folderType != 0 && $folderType < 11) {
00245             $folderType = 1;
00246         } elseif ($folderType != 0 && $folderType < 11) {
00247             $folderType = 2;
00248         }
00249         $HTML_LAYER = $layer;
00250         $HTML_LAYER_LINK_BEGIN = "<a href='".self::createLink(1, array('action' => 'foldOut', 'actionID' => $fileID)) ."'>";
00251         $HTML_LAYER_IMAGE = "<img src='".PATH_TO_ROOT."images/transparent.gif' alt='layerImage' class='".self::$iconTypes[$layerType]."' />";
00252         $HTML_LAYER_LINK_END = "</a>";
00253         $HTML_FOLDER_LINK_BEGIN = "<a class='folder' href='".self::createLink(1, array('activeFolder' => $fileID, 'action' => '', 'actionID' => '', 'mode' => '')) ."' title=\"".$folderName."\">";
00254         $HTML_FOLDER_IMAGE = "<img src='".PATH_TO_ROOT."images/transparent.gif' alt='Verzeichnis-Symbol' class='".self::$iconTypes[$folderType]."' />".$folderLink;
00255         $HTML_FOLDER_LINK_END = "</a>";
00256         // Wenn Aktiver Ordner HinterGrundFarbe aendern
00257         $FOLDER_CLASS = ($this->isActiveFolder() ? "res_folderselect" : "res_folder");
00258         // Wenn kein plus oder minus angezeigt wird soll auch kein Link gesetzt werden
00259       if ($layerType == 3 || $layerType == 4) {
00260             $HTML_LAYER_LINK_BEGIN = "";
00261             $HTML_LAYER_LINK_END = "";
00262         }
00263         $return = "<div class='".$FOLDER_CLASS." nobr'>".$HTML_LAYER.$HTML_LAYER_LINK_BEGIN.$HTML_LAYER_IMAGE.$HTML_LAYER_LINK_END.$HTML_FOLDER_LINK_BEGIN.$HTML_FOLDER_IMAGE.$HTML_FOLDER_LINK_END."</div>";
00264         return $return;
00265     }

Folder::getFiles (  ) 

Getter for files of the folder.

This method loads at the first access the file list of the folder and returns them.

Returns:
File[] File array

Definition at line 102 of file class.folder.inc.php.

Referenced by ZipProvider::checkArchiveSize(), ZipProvider::logFolderDownload(), and ZipVisitor::visitFolder().

00102                                    {
00103                 if (is_null($this->files)) {
00104                     global $resDB;
00105                     
00106                     $desc = (isset($_GET['direction']) && $_GET['direction'] == 'DESC');
00107                 $SQL_sort = 'create_time';
00108                 
00109                 if ( $this->fileID > 0 ) {
00110                         $this->files = $resDB->getFiles( $this->fileID, $SQL_sort, $desc );
00111                 } elseif ($this->fileID == "-1") {
00112                                 $this->files = $resDB->getMostRatedFiles();
00113                 } elseif ($this->fileID == "-2") {
00114                     $this->files = $resDB->getNewestFiles();
00115                 }
00116                 }
00117                 
00118                 return $this->files;
00119         }

Folder::getFolderCount ( recursive = true  ) 

Definition at line 148 of file class.folder.inc.php.

References loadSubFolder().

00148                                                             {
00149                 $this->loadSubFolder();
00150                 $count = count($this->folders);
00151                 if ( $recursive ) {
00152                         foreach ( $this->folders as $folder ) {
00153                                 $count += $folder->getFolderCount(true);
00154                         }
00155                 }
00156                 return $count;
00157         }

Folder::getFolderHTMLOption ( option  )  [private]

Definition at line 504 of file class.folder.inc.php.

References Resource::createLink(), and Resource::getRessourceVisibilityHTML().

Referenced by showFiles().

00504                                                         {
00505             if ($option == "deleteFolder") {
00506                         $template = new Template(PATH_TO_ROOT . "/ressourcen/templates/deletefolder.html");
00507                         $folderID = $this->fileManager->getActiveFolder();
00508                         $html = "";
00509                         eval ( $template->getTemplate( "html" ) );
00510                         return $html;
00511         }
00512 
00513                 if ( $option == "setFolderVisibility" ) {
00514             return "<div class='res_file-extra'>"
00515                                         ."<a href='".$this->createLink(0, array('activeFolder' => $this->fileManager->getActiveFolder(), "action" => "setRessourceVisibility", 'actionID' => $this->fileManager->getActionID(), 'mode' => 1))
00516                                         ."'>Nur Ordner</a>&nbsp;&nbsp;&nbsp;"."<a href='".$this->createLink(0, array('activeFolder' => $this->fileManager->getActiveFolder(), "action" => "setRessourceVisibility", 'actionID' => $this->fileManager->getActionID(), 'mode' => 2)) .""
00517                                         ."'>Inhalt (rekursiv)</a>&nbsp;&nbsp;&nbsp;"."<a href='".$this->createLink(0, array('activeFolder' => $this->fileManager->getActiveFolder(), "action" => "setRessourceVisibility", 'actionID' => $this->fileManager->getActionID(), 'mode' => 3)) .""
00518                                                         ."'>Ordner und Inhalt (rekursiv)</a>&nbsp;&nbsp;&nbsp;"."<a href='".$this->createLink(0, array("activeFolder" => $this->fileManager->getActiveFolder())) ."'>Abbrechen</a>"."<span class='res_file-extra'>".Utilities::helpCode(701) ."</span>"."</div>";
00519                 }
00520 
00521                 if ( $option == "setRessourceVisibility" ) {
00522                         return $this->getRessourceVisibilityHTML();
00523                 }
00524         }

Folder::getFolderState (  ) 

Definition at line 86 of file class.folder.inc.php.

00086                                          {
00087                 return $this->folderState;
00088         }

Folder::getSubFolders (  ) 

Getter for the subfolders.

Fetchs the subfolders of this folder if not present and returns them.

Returns:
Folder[] Folder array

Definition at line 133 of file class.folder.inc.php.

References loadSubFolder().

Referenced by ZipProvider::checkArchiveSize(), hasFilesInSubFolders(), ZipProvider::logFolderDownload(), and ZipVisitor::visitFolder().

00133                                         {
00134                 $this->loadSubFolder();
00135                 
00136                 return $this->folders;
00137         }

Folder::getUserIcons (  )  [private]

Definition at line 267 of file class.folder.inc.php.

References $_SESSION, $db, ZipProvider::checkArchiveSize(), and hasFilesInSubFolders().

Referenced by showFiles().

00267                                         {
00268         $action = isset($_GET['action']) ? $_GET['action'] : '';
00269         $actionID = isset($_GET['actionID']) ? $_GET['actionID'] : '';
00270         $course = $_SESSION['course'];
00271         $activeFolder = $_GET['activeFolder'];
00272         global $db, $VISIBLE_TXT, $VISIBLE_ICONS, $settings;
00273         $imgFolder = $this->fileManager->getImgFolder();
00274                 $folderUserID = $this->userID;
00275                 $folderWrite = $this->studentWrite;
00276 
00277         // Definition der Bilder zum Bearbeiten des Ordners
00278         if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")        
00279                 $EDITFOLDER = "<img title='Ordnereigenschaften editieren' src='".$imgFolder."edittypes/lock_edit.gif' alt='lock edit Symbol'/>";
00280         else $EDITFOLDER = "<img title='Ordnereigenschaften editieren' src='".PATH_TO_ROOT."images/transparent.gif' class='icon_lock_edit' alt='lock edit Symbol'/>";
00281         if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")        
00282                 $DELETEFOLDER = "<img title='Ordner inklusive Dateien l&ouml;schen' src='".$imgFolder."edittypes/lock_delete.gif' alt='lock delete Symbol' />";
00283         else $DELETEFOLDER = "<img title='Ordner inklusive Dateien l&ouml;schen' src='".PATH_TO_ROOT."images/transparent.gif' class='icon_lock_delete' alt='lock delete Symbol' />";
00284 
00285         if ($settings['filemanager_recursive']) {
00286                 $RECURSIVEDOWNLOADFOLDER = "<img title='Ordner als recursives Archiv herunterladen ' src='".$imgFolder."edittypes/lock_recursive_archive_download.gif' alt='lock recursive download Symbol' />";
00287             } else { 
00288                 $RECURSIVEDOWNLOADFOLDER = ""; 
00289         }
00290         
00291                 $DOWNLOADFOLDER = "<img title='Ordner als Archiv herunterladen ' src='".$imgFolder."edittypes/lock_archive_download.gif' alt='lock download Symbol' />";
00292 
00293                 $FOLDERVISIBLE = "";
00294 
00295                 if (($_SESSION['usergroup'] == ADMIN || ($_SESSION["usergroup"] == DOZENT && $_SESSION["course"] > 0) || (isset($folderUserID) && $_SESSION['userid'] == $folderUserID)) && $activeFolder > 0) {
00296             if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")    
00297                 $EDITFOLDER = "<a title='Ordnereigenschaften ver&auml;ndern' href='./edit.php?editID=".$activeFolder."'><img src='".$imgFolder."edittypes/edit.gif' alt='Bearbeiten' /></a>";
00298             else $EDITFOLDER = "<a title='Ordnereigenschaften ver&auml;ndern' href='./edit.php?editID=".$activeFolder."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_edit_folder' alt='Bearbeiten' /></a>";
00299             if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00300                 $DELETEFOLDER = "<a title='Ordner l&ouml;schen' href='".$this->createLink(1, array("action" => "deleteFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/delete.gif'  alt='L&ouml;schen' /></a>";
00301             else $DELETEFOLDER = "<a title='Ordner l&ouml;schen' href='".$this->createLink(1, array("action" => "deleteFolder", "actionID" => $activeFolder)) ."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_delete_folder'  alt='L&ouml;schen' /></a>";
00302             
00303             //Sichtbarkeitsanzeige für aktuellen Ordner setzen
00304             $visibleIcon = "";
00305             //beim Laden der Seite
00306             if (isset($this->visibleType) && $this->visibleType >= 1 && $this->visibleType <= 3) {
00307                 $visibleIcon = $VISIBLE_ICONS[$this->visibleType];
00308             }
00309             $FOLDERVISIBLE = "<a title='Sichtbarkeit dieses Ordners &auml;ndern' href='".$this->createLink(0, array('activeFolder' => $activeFolder, 'action' => "setFolderVisibility", "actionID" => $activeFolder)) ."'>".$visibleIcon."</a>";
00310         }
00311         if (($_SESSION['usergroup'] == ADMIN || ($_SESSION["usergroup"] == DOZENT && $_SESSION["course"] > 0)) && $activeFolder > 0) {
00312             if (($folderWrite && !($action == "studentWriteFolder" && $actionID == $activeFolder)) || (!$folderWrite && $action == "studentWriteFolder" && $actionID == $activeFolder)) {
00313                 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")        
00314                         $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte entziehen' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/student_write.gif' alt='Studenten Schreibrechte entziehen' /></a>";
00315                 else $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte entziehen' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_remove_student_write' alt='Studenten Schreibrechte entziehen' /></a>";
00316             } else {
00317                 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00318                         $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte geben' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/lock_student_write.gif' alt='Studenten Schreibrechte geben' /></a>";
00319                 else $STUDENTWRITEFOLDER = "<a title='Studenten Schreibrechte geben' href='".$this->createLink(1, array("action" => "studentWriteFolder", "actionID" => $activeFolder)) ."'><img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_give_student_write' alt='Studenten Schreibrechte geben' /></a>";
00320             }
00321         } else {
00322             if (isset($folderWrite) && $folderWrite) {
00323                 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00324                         $STUDENTWRITEFOLDER = "<img src='".$imgFolder."edittypes/student_write.gif' title='Studenten haben Schreibrechte' alt='Studenten haben Schreibrechte' />";
00325                 else $STUDENTWRITEFOLDER = "<img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_student_write' title='Studenten haben Schreibrechte' alt='Studenten haben Schreibrechte' />";
00326             } else {
00327                 if(isset($_SESSION["UserStyle"]) && $_SESSION["UserStyle"] != "fh_yaml")
00328                         $STUDENTWRITEFOLDER = "<img src='".$imgFolder."edittypes/lock_student_write.gif' title='Studenten haben keine Schreibrechte' alt='Studenten haben keine Schreibrechte' />";
00329                 else $STUDENTWRITEFOLDER = "<img src='".PATH_TO_ROOT."images/transparent.gif' class='icon_lock_student_write' title='Studenten haben keine Schreibrechte' alt='Studenten haben keine Schreibrechte' />";
00330             }
00331         }
00332 
00333         if (ZipProvider::checkArchiveSize($this, false) <= 
00334                 $settings['filemanager_archive_max_filesize']*1024*1024) {
00335                         
00336                     if (($this->fileCounter + $this->linkCounter) > 0) {            
00337                         $DOWNLOADFOLDER = "<a title='Ordner als Archiv herunterladen' href='".$this->createLink(1, array("action" => "downloadFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/archive_download.gif' alt='Herunterladen' /></a>";
00338                 }
00339         } else {
00340                         $DOWNLOADFOLDER = "<img title='Maximale Dateigröße überschritten' src='".$imgFolder."edittypes/lock_archive_download.gif' alt='lock download Symbol' />";
00341         }
00342         
00343         if ($settings['filemanager_recursive'] == true) { 
00344         
00345                 if (ZipProvider::checkArchiveSize($this, true) <= 
00346                         $settings['filemanager_archive_max_filesize']*1024*1024) {
00347                         if ((($this->fileCounter + $this->linkCounter) > 0) || $this->hasFilesInSubFolders()) {
00348                                     $RECURSIVEDOWNLOADFOLDER = "<a title='Ordner als recursives Archiv herunterladen' href='".$this->createLink(1, array("action" => "recursiveDownloadFolder", "actionID" => $activeFolder)) ."'><img src='".$imgFolder."edittypes/recursive_archive_download.gif' alt='Recursiv Herunterladen' /></a>";
00349                             }
00350                 } else {
00351                         $RECURSIVEDOWNLOADFOLDER = "<img title='Maximale Dateigröße überschritten' src='".$imgFolder."edittypes/lock_recursive_archive_download.gif' alt='lock recursive download Symbol' />";
00352                 }
00353         }
00354         
00355         return $DOWNLOADFOLDER . $RECURSIVEDOWNLOADFOLDER . $EDITFOLDER . $FOLDERVISIBLE . $STUDENTWRITEFOLDER . $DELETEFOLDER;
00356         }

Folder::hasFilesInSubFolders (  ) 

Test which subfolders exists and containing files.

Returns:
Boolean Subfolders which are not empty

Definition at line 363 of file class.folder.inc.php.

References $folders, and getSubFolders().

Referenced by getUserIcons().

00363                                                {
00364                 $folders = $this->getSubFolders();
00365                 
00366                 foreach ($folders as $folder) {
00367                         if ((count($folder->getFiles()) > 0) || 
00368                                 $folder->hasFilesInSubFolders()) {
00369                                 return TRUE;
00370                         }
00371                 }
00372         }

Folder::isActiveFolder (  ) 

Definition at line 144 of file class.folder.inc.php.

Referenced by drawFolder().

00144                                          {
00145                 return (!is_null($this->fileManager) && $this->fileManager->getActiveFolder() == $this->fileID );
00146         }

Folder::isLastFolder ( fileID = null  )  [private]

Definition at line 159 of file class.folder.inc.php.

References Resource::$fileID.

Referenced by printSubFolder().

00159                                                         {
00160                 if (is_null( $fileID ) ) {
00161                         if (is_a( $this->parentFolder, "Folder")) {
00162                                  return $this->parentFolder->isLastFolder( $this->fileID );
00163                         }
00164                 } else {
00165                         $lastFolder = end($this->folders);
00166                         if ( is_a( $lastFolder, "Folder" )) {
00167                                 return ( $lastFolder->getID() == $fileID );
00168                         }
00169                 }
00170                 return false;
00171         }

Folder::loadSubFolder (  ) 

Definition at line 139 of file class.folder.inc.php.

Referenced by getFolderCount(), getSubFolders(), and printSubFolder().

00139                                         {
00140                 global $resDB;
00141                 if (empty($this->folders)) $this->folders = $resDB->getSubFolder( $this );
00142         }

Folder::printSubFolder ( layer = ''  ) 

Definition at line 173 of file class.folder.inc.php.

References $db, drawFolder(), isLastFolder(), loadSubFolder(), and RessourcenDB::saveFolderState().

00173                                                       {
00174         global $db;
00175                 $this->loadSubFolder();
00176         $lineLayer = $layer."<img src='".PATH_TO_ROOT."images/transparent.gif' alt='lineLayer' class='".self::$iconTypes[5]."'/>";
00177         $emptyLayer = $layer."<img src='".PATH_TO_ROOT."images/transparent.gif' alt='emptyLayer' class='".self::$iconTypes[10]."'/>";
00178         $newLayer = $lineLayer;
00179         $lastFolder = $this->isLastFolder();
00180         if ($lastFolder) {
00181                 $newLayer = $emptyLayer;
00182                 $plus = 9;
00183             $minus = 7;
00184             $join = 4;
00185             $bottom = true;
00186         } else {
00187                 $plus = 8;
00188                 $minus = 6;
00189                 $join = 3;
00190                 $bottom = false;
00191         }
00192         if ( is_null( $this->parentFolder ) ) {
00193                 $newLayer = "";
00194         }
00195         $gesamtReturn = "";
00196                 $subReturn = "";
00197 
00198         foreach($this->folders as $key => $subFolder) {
00199                 $subReturn .= $subFolder->printSubFolder( $newLayer );
00200         }
00201 
00202                 if ( !is_null($this->parentFolder) ) {
00203                 if ( $this->fileManager->getAction() == 'foldOut' && $this->fileManager->getActionID() == $this->fileID ) {
00204                         RessourcenDB::saveFolderState( $this );
00205                 }
00206                 if ($this->folderState) {
00207                     $this->layerType = $minus;
00208                     if (!$subReturn) $this->layerType = $join;
00209                 } else {
00210                     $this->layerType = $plus;
00211                     if (!$subReturn) $this->layerType = $join;
00212                     $subReturn = false;
00213                 }
00214                 // Unterschiedliche Ordnersymbole fuer Foyerordner und Kursordner
00215                 $this->folderType = 1;
00216                 if ($this->courseID == 0) $this->folderType = 11;
00217                 else if ( $this->parentFolder->getID() == 0 ) $this->folderType = 0;
00218                 $gesamtReturn.= $this->drawFolder($layer) .$subReturn;
00219                 } else {
00220                         $gesamtReturn = $subReturn;
00221                 }
00222 
00223         return $gesamtReturn;
00224     }

Folder::setFiles ( files  ) 

Definition at line 121 of file class.folder.inc.php.

References $files.

00121                                            {
00122                 $this->files = $files;
00123         }

Folder::setFolderState ( folderState  ) 

Definition at line 70 of file class.folder.inc.php.

References $folderState.

00070                                                        {
00071                 $this->folderState = $folderState;
00072         }

Folder::setFolderType ( folderType  ) 

Definition at line 82 of file class.folder.inc.php.

References $folderType.

00082                                                      {
00083                 $this->folderType = $folderType;
00084         }

Folder::setLayerType ( layerType  ) 

Definition at line 74 of file class.folder.inc.php.

References $layerType.

00074                                                    {
00075                 $this->layerType = $layerType;
00076         }

Folder::setParentFolder ( folder  ) 

Definition at line 90 of file class.folder.inc.php.

00090                                                    {
00091                 $this->parentFolder = $folder;
00092         }

Folder::setStudentWrite ( studentWrite  ) 

Definition at line 78 of file class.folder.inc.php.

References $studentWrite.

00078                                                          {
00079                 $this->studentWrite = $studentWrite;
00080         }

Folder::showFiles ( statisticView = false  ) 

Generiert die Filelist, und gibt sie aus

public

Definition at line 379 of file class.folder.inc.php.

References $_SESSION, Resource::$courseID, $db, $fileCounter, $linkCounter, getFolderHTMLOption(), and getUserIcons().

00379                                                  {
00380         global $db, $settings;
00381         // INIT
00382 
00383         $templateFileList = ( $statisticView ) ?
00384                 new Template( PATH_TO_ROOT . "/ressourcen/templates/filelist_statistic.html" )
00385                 : new Template( PATH_TO_ROOT . "/ressourcen/templates/filelist.html" );
00386                 global $VISIBLE_TXT;
00387         $time = time();
00388         $action = isset($_GET['action']) ? $_GET['action'] : '';
00389         $actionID = isset($_GET['actionID']) ? $_GET['actionID'] : '';
00390         $course = $_SESSION['course'];
00391         $activeFolder = $_GET['activeFolder'];
00392         $imgFolder = $this->fileManager->getImgFolder();
00393         $CELL1 = $CELL = 'tableCellDark'; // AnfangsKlasse fuer Tabellenzeile, wechselt
00394         $CELL2 = 'tableCell';
00395         $COLS = 6; // Anzahl der Spalten fuer Colspan
00396         // SichtbarkeitsTexte
00397         $VISIBLE = "";
00398 
00399         //$sql_add = $this->getVisibilityConstraintSQL();
00400         $topOrdner = Data::toHTML($this->link, false);
00401         if ($activeFolder > 0) {
00402             $folderUserID = $this->userID;
00403             $user = $db->get_row("SELECT Vorname, Nachname, gender FROM user WHERE ID='$folderUserID'");
00404             $folderVisible = $this->visibleType;
00405             $folderCreate = Output::echoDate("d.m.Y H:i", (int)$this->createTime);
00406             $folderUser = "";
00407             if ($user != null) {
00408                     $courseID = $_SESSION["course"];
00409                                 $groupName = UserTools::getUserGroupName($folderUserID, $courseID);
00410                 $userName = $user->Vorname." ".$user->Nachname . " ($groupName)";
00411                     $folderUser = "<a href='".PATH_TO_ROOT."user/homepage.php?user=$folderUserID'>".Data::toHTML($userName, false) ."</a>";
00412                     if ($role = RoleArtefacts::getRoleForItem(RESSOURCE, (int)$activeFolder)) {
00413                         $folderUser.= " (".$role->getPropertiesLink($role->getName($user->gender)) .")";
00414                     }
00415                     if ($team = TeamArtefacts::getTeamForItem(RESSOURCE, (int)$activeFolder)) {
00416                         $folderUser.= " (".Data::toHTML($team->getName(), false) .")";
00417                     }
00418             }
00419             $folderWrite = $this->studentWrite;
00420         }
00421         //echo "<table width='100%' class='res_file-list' cellpadding='0' cellspacing='0'>";
00422         $desc = (isset($_GET['direction']) && $_GET['direction'] == 'DESC');
00423         $SQL_sort = 'create_time';
00424         if ($action == 'sort' && in_array($actionID, array("name", "size", "create_time", "userID", "counter"))) {
00425                 $SQL_sort = $actionID;
00426         }
00427         global $resDB;
00428         if ( $activeFolder > 0 ) {
00429                 $this->files = $resDB->getFiles( $activeFolder, $SQL_sort, $desc );
00430         } elseif ($activeFolder == "-1") {
00431                         $this->files = $resDB->getMostRatedFiles();
00432         } elseif ($activeFolder == "-2") {
00433             $this->files = $resDB->getNewestFiles();
00434         }
00435 
00436         // Fuer OrdnerDownload werden Richtige Files gebraucht
00437         $linkCounter = $fileCounter = $sizeCounter = 0;
00438         foreach($this->files as $file) {
00439                         if ( $file->isFileVisible() ) {
00440                     if ($file->getType() == 'link') $linkCounter++;
00441                     elseif ($file->getType() == 'file') $fileCounter++;
00442                     $sizeCounter = $sizeCounter+$file->getSize();
00443                         }
00444         }
00445         $sizeCounter = Format::FilesizeStr($sizeCounter);
00446         $this->fileCounter = $fileCounter;
00447         $this->linkCounter = $linkCounter;
00448 
00449                 if (isset($this->visibleType) && $this->visibleType >= 1 && $this->visibleType <= 3) {
00450                         $VISIBLE = $VISIBLE_TXT[$this->visibleType];
00451                 }
00452                 $folderIcons = ( !$statisticView ) ? $this->getUserIcons() : "";
00453 
00454         // Blaue Ueberschrift
00455         $FOLDERINFO = ($fileCounter+$linkCounter) ." Element".(($fileCounter+$linkCounter) != 1 ? "e" : "") .", Ordner ".$VISIBLE;
00456 
00457         if ($activeFolder > 0 && strlen($folderUser) > 0) {
00458                 $SUBHEADER =  "<div><small>Erstellt von $folderUser am $folderCreate - $linkCounter Link".($linkCounter == 1 ? "" : "s") .", $fileCounter Datei".($fileCounter == 1 ? "" : "en") .", $sizeCounter total.</small><br/><br/></div>";
00459         } else {
00460                 $SUBHEADER =  "<div><br/><br/></div>";
00461         }
00462                 if ( $this->fileID == $this->fileManager->getActionID() ) $SUBHEADER .= $this->getFolderHTMLOption( $action );
00463 
00464                 if ($action != "sort") $this->fileManager->runAction($activeFolder, $COLS);
00465         //Abfrage: wenn Folder nicht für aktuellen User sichtbar, dann continue
00466         // Auswertungsmethode wird fuer OrdnerOptionen aufgerufen.
00467 
00468         $tableTitles = array( "resource" =>  "Ressource",
00469                                                   "action"   =>  "Aktion",
00470                                                   "size"     =>  "Gr&ouml;&szlig;e",
00471                                                   "created"  =>  "Erstellt",
00472                                                   "owner"    =>  "Besitzer",
00473                                                   "clicks"   =>  "Klicks" );
00474         if ($activeFolder < 0) {
00475             // Gibt die TitelZeile mit den Spalten Ueberschriften aus Ohne Sortierung fuer die TOP20 oder Neuesten 20
00476                         $tableHead = $tableTitles;
00477         } else {
00478             $newDirection = ($desc ? "ASC" : "DESC");
00479             // Gibt die TitelZeile mit den Spalten Ueberschriften aus mit SOrtiermoeglichkeit
00480             $tableHead["resource"] = "<a href='".$this->createLink(1, array('action' => 'sort', 'actionID' => 'name', 'direction' => $newDirection)) ."'>".$tableTitles["resource"]."</a>";
00481                         $tableHead["action"] = $tableTitles["action"];
00482                         $tableHead["size"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "size", 'direction' => $newDirection)) ."'>".$tableTitles["size"]."</a>";
00483                         $tableHead["created"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "create_time", 'direction' => $newDirection)) ."'>".$tableTitles["created"]."</a>";
00484             $tableHead["owner"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "userID", 'direction' => $newDirection)) ."'>".$tableTitles["owner"]."</a>";
00485                         $tableHead["clicks"] = "<a href='".$this->createLink(1, array('action' => "sort", 'actionID' => "counter", 'direction' => $newDirection)) ."'>".$tableTitles["clicks"]."</a>";
00486         }
00487 
00488                 $fileListEntriesHTML = "";
00489         if ($this->files) {
00490                 $FILELISTINFO = "";
00491             foreach($this->files as $file) {
00492                 // ZellenKlasse wechselt bei jeder Zeile
00493                 $CELL = ($CELL == $CELL1 ? $CELL2 : $CELL1);
00494                                 $fileListEntriesHTML .= $file->getHTMLString( $statisticView, $CELL );
00495                                 if ($action != "sort") $this->fileManager->runAction($file->getID(), $COLS);
00496             }
00497 
00498         } else {
00499                 $FILELISTINFO = "<div style='text-align: center'><br/><br/>Keine Dateien vorhanden.<br/><br/></div>";
00500         }
00501         eval ( $templateFileList->getTemplate() );
00502     }


Member Data Documentation

Folder::$fileCounter = 0 [private]

Definition at line 46 of file class.folder.inc.php.

Referenced by showFiles().

Folder::$files [private]

Definition at line 39 of file class.folder.inc.php.

Referenced by setFiles().

Folder::$folders = array() [private]

Definition at line 37 of file class.folder.inc.php.

Referenced by hasFilesInSubFolders().

Folder::$folderState [private]

Definition at line 44 of file class.folder.inc.php.

Referenced by setFolderState().

Folder::$folderType [private]

Definition at line 43 of file class.folder.inc.php.

Referenced by drawFolder(), and setFolderType().

Folder::$iconTypes = array() [static, private]

Definition at line 41 of file class.folder.inc.php.

Folder::$layerType [private]

Definition at line 42 of file class.folder.inc.php.

Referenced by drawFolder(), and setLayerType().

Folder::$linkCounter = 0 [private]

Definition at line 47 of file class.folder.inc.php.

Referenced by showFiles().

Folder::$parentFolder = null [private]

Klassen-Attribute.

Definition at line 36 of file class.folder.inc.php.

Folder::$studentWrite [private]

Definition at line 45 of file class.folder.inc.php.

Referenced by setStudentWrite().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations

Generated on Fri Oct 30 17:21:39 2009 for MSP Modul Ressourcen by  doxygen 1.6.1